from zope.interface import Interface, Attribute

class IBasicProfile(Interface):
    """a basic profile"""
    
    username = Attribute("""username of user""")
    firstname = Attribute("""first name of user""")
    lastname = Attribute("""last name of user""")
    
    
class IVCard(Interface):
    """a vcard definition"""
    
    fn = Attribute("""fn""")
    nickname = Attribute("""nickname""")
    sort_string = Attribute("""sort-string""")
    url = Attribute("""url of user's homepage""")
    email = Attribute("""email of user""")
    label = Attribute("""label""")
    geo = Attribute("""geo location""")
    photo = Attribute("""URL to photo of user""")
    bday = Attribute("""birthday""")
    logo = Attribute("""logo of user/company""")
    sound = Attribute("""sound""")
    title = Attribute("""title""")
    role = Attribute("""role""")
    org = Attribute("""org""")
    category = Attribute("""category""")
    note = Attribute("""note""")
    klass = Attribute("""class""") # this one is different because class is a reserved python word
    key = Attribute("""key""")
    mailer = Attribute("""mailer""")
    uid = Attribute("""uid""")
    rev = Attribute("""rev""")
    
    adr = Attribute("""list of addresses attached to that vcard of type IVCardAddress""")
    
class IVCardAddress(Interface):
    """models a vcard address"""
    
    post_office_box = Attribute("""post-office-box""")
    extended_address = Attribute("""extended-address""")
    street_address = Attribute("""street-address""")
    locality = Attribute("""locality""")
    region = Attribute("""region""")
    postal_code = Attribute("""postal-code""")
    country_name = Attribute("""country-name""")
    vtype = Attribute("""type""") # type is vtype because type is a reserved word in Python
    value = Attribute("""value""")
    
    
    
    
    
    
    
    